import { login } from '../../api/login'
import { getUserInfo } from '../../api/mine'



const userModules = {
    //开启命名空间
    namespaced: true,
    //保存状态数据
    state: {
        userInfo: null,
        token: null,
    },
    getters: {
        token(state){
            return state.token
        },
        userInfo(state){
            return state.userInfo
        }
    },
    mutations: {
        SET_TOKEN(state, token) {
            state.token = token
        },
        SET_USERINFO(state, userInfo) {
            state.userInfo = userInfo
        }
    },
    actions: {
        /**
         * 异步登录函数
         */
        async asyncLogin(ctx, {username, password}) {
            // 调用 login 函数进行登录，获取 token 和状态码
            const {token, status} = await login(username, password)
            console.log('返回码',status);
            // 如果状态码为 200，表示登录成功
            if(status === 200){
                // 将 token 存入 Vuex store
                ctx.commit('SET_TOKEN', token)
                // 获取用户信息
                const {userInfo} = await getUserInfo()
                // 将用户信息存入 Vuex store
                ctx.commit('SET_USERINFO', userInfo)
                // 登录成功，返回 true
                return true
            }

            // 如果状态码不是 200，表示登录失败，返回 false
            return false
        }
    }
}

export default userModules